package main

import (
	"fmt"
	"sync"
)

var wg sync.WaitGroup

func main() {
	var msg chan int
	// msg = make(chan int) // 无缓冲空间

	msg = make(chan int, 1)

	// 发数据
	msg <- 1
	wg.Add(1)
	go consume(msg)
	msg <- 2

	close(msg) // 已经关闭的channel 不能再发送数据了
	wg.Wait()

}

func consume(ch <- chan  int) {
	defer wg.Done()
	//data := <- ch
	//fmt.Println(data)

	// channel 可以循环取值

	//for data := range ch {
	//	fmt.Println(data)
	//}

	for {
		data, ok := <- ch
		fmt.Println(data, ok)
		if !ok {
			break
		}
	}
}